go/types.Pointer.base (field)
41 uses
go/types (current package)
builtins.go#L610: x.typ = &Pointer{base: T}
builtins.go#L816: x.typ = NewSlice(ptr.base)
builtins.go#L1033: if a, _ := under(p.base).(*Array); a != nil {
call.go#L751: x.typ = x.typ.(*Pointer).base
call.go#L931: typ = &Pointer{base: typ}
conversions.go#L164: if IdenticalIgnoreTags(under(V.base), under(T.base)) && !isTypeParam(V.base) && !isTypeParam(T.base) {
expr.go#L146: x.typ = &Pointer{base: x.typ}
expr.go#L1097: x.typ = &Pointer{base: x.typ}
expr.go#L1106: if base != nil && !Identical(p.base, base) {
expr.go#L1110: base = p.base
index.go#L77: if typ, _ := under(typ.base).(*Array); typ != nil {
index.go#L128: if t, _ := under(t.base).(*Array); t != nil {
index.go#L259: if u, _ := under(u.base).(*Array); u != nil {
infer.go#L588: return w.isParameterized(t.base)
infer.go#L743: w.typ(t.base)
instantiate.go#L242: if p, _ := Vu.(*Pointer); p != nil && !isValid(under(p.base)) {
lookup.go#L515: return p != nil && IsInterface(p.base)
lookup.go#L521: if p, _ := under(T).(*Pointer); isTypeParam(p.base) {
lookup.go#L580: if p.base == nil {
lookup.go#L586: return p.base, true
lookup.go#L595: if _, ok := under(p.base).(*Struct); ok {
lookup.go#L596: return p.base
pointer.go#L12: base Type // element type
pointer.go#L16: func NewPointer(elem Type) *Pointer { return &Pointer{base: elem} }
pointer.go#L19: func (p *Pointer) Elem() Type { return p.base }
predicates.go#L313: return c.identical(x.base, y.base, p)
signature.go#L316: t = p.base
signature.go#L344: typ = ptr.base
subst.go#L143: base := subst.typ(t.base)
subst.go#L144: if base != t.base {
subst.go#L145: return &Pointer{base: base}
typestring.go#L189: w.typ(t.base)
typexpr.go#L338: typ.base = Typ[Invalid] // avoid nil base in invalid recursive type declaration
typexpr.go#L340: typ.base = check.varType(e.X)
typexpr.go#L345: if !isValid(typ.base) {
unify.go#L627: return u.nify(x.base, y.base, emode, p)